:root {
    --header-height: 60px;
    --sidebar-width: 200px;
    --content-padding: 20px;
    --gap-sm: 8px;
    --gap-md: 16px;
    --gap-lg: 24px;
    --theme-color: #409EFF;
    --header-bg: #fff;
    --sidebar-bg: #fff;
    --main-bg: #fff;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body,
html,
#app {
    height: 100%;
    width: 100%;
    background: #f5f7fa;
}

.app-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: var(--header-height);
    background: var(--header-bg);
    z-index: 100;
    box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.04);
}

.app-sidebar {
    position: fixed;
    top: var(--header-height);
    left: 0;
    width: var(--sidebar-width);
    height: calc(100vh - var(--header-height));
    background: var(--sidebar-bg);
    z-index: 90;
    box-shadow: 1px 0 8px 0 rgba(0, 0, 0, 0.03);
    overflow-y: auto;
    transition: width 0.2s;
}

.app-container {
    min-height: 100vh;
    width: 100vw;
    background: #f5f7fa;
}

.main-content {
    margin-left: calc(var(--sidebar-width) + 30px);
    margin-top: calc(var(--header-height) + 30px);
    padding: var(--content-padding);
    background: var(--main-bg);
    min-height: calc(100vh - var(--header-height) - 30px);
    max-width: calc(100vw - var(--sidebar-width));
    box-sizing: border-box;
    overflow-x: hidden;
    border-radius: 8px;
    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.04);
}

.el-breadcrumb {
    position: relative;
    top: 0;
    left: 0;
    margin-bottom: 20px;
    font-size: 14px;
}

@media (max-width: 768px) {
    .app-sidebar {
        width: 60px;
    }

    .main-content {
        margin-left: 60px;
        max-width: calc(100vw - 60px);
    }
}